﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CppPlugin
{
    /// <summary>
    /// Набор ключевых слов принятых в языке C++
    /// </summary>
    public static class KeyWord
    {
        private static string[] keywords = {
                                        "asm", "abstract", "break", "case",
                                        "catch", "checked", "continue", "default",
                                        "delegate", "do", "else", "event",
                                        "explicit", "extern",
                                        "false", "finally", "for",
                                        "goto", "if", "interface",
                                        "internal", "namespace", "new",
                                        "operator", "override",
                                        "private", "protected", "public",
                                        "return", "sealed", "sizeof",
                                        "switch", "this", "throw", "true", "try", 
                                        "static", "using", "virtual", "while",
                                        "bool", "char", "class", "const",
                                        "double", "enum", "float", "friend" , "int",
                                        "long", "short", "static", "string",
                                        "struct", "void", "reinterpret_cast",
                                        "typedef", "typename", "dynamic_cast",
                                        "static_cast", "template", "register",
                                        "export", "wchar_t", "volatile", "unsigned",
                                        "union", "typeid", "return", "mutable",
                                        "inline", "auto"
                                    };
        /// <summary>
        /// Проверяет является ли слово переданное в качестве параметра ключевым словом
        /// </summary>
        /// <param name="keyWord">потенциальное ключевое слово</param>
        /// <returns>истина или ложь</returns>
        public static bool isKeyWord(string keyWord)
        {
            foreach (string word in keywords)
            {
                if (keyWord.Equals(word))
                {
                    return true;
                }
            }
            return false;
        }
    }
}
